5 research outputs found
Entwicklung eines rationalen Entscheidungsprozesses für Architekturentscheidungen
AbstractIt is one of the critical tasks to make the right design- and
architectural-decisions in huge and complex developing or reengineering
projects. Such decisions have different types. On the one hand there are
decisions with minimal effects on the architecture and the software system.
On the other hand there are more strategic decisions which effect the
architecture widely and change the central characteristics of the software
system. Particularly the strategic decisions are very complex, risky and
include many uncertain facts about hidden dependencies. The complexity and
risks rise if such decisions have to be made in huge projects with 50 or
more developers. The decisionmaker, mostly the project manager or the
client, is confronted with various factors, assumptions and constraints.
Typical examples are competing objectives, alternative solutions and
incomplete information about external third-party systems. If such complex
decisions have to be made in an unsystematic way, they will lead to
uncalculatable risks with enormous bad consequences for the software system
and the development project. Examples are changed or missed deadlines,
risen development costs or monetary losses due to an outage of a business
critical system.However, the specific characteristics of architectural
decisions are not considered by existing methods and concepts to support
decision making. They are too detailed, focussed on source code and require
information in a formal quality and completeness. These information can not
be gathered within such huge projects because of the high effort, time
pressure and lacking resources. Therefore an architectural decision process
is missing to structure the various information, assumptions and subjective
estimations and so you can make such complex and risky decisions in a
systematic and focussed way.The main objective of the following
dissertation is to reduce the complexity, uncertainty and risks of
architectural decisions in order to avoid additional changes and
adjustments as well as to achieve the desired objectives. An architectural
decision process with four phases is developed on the basis of the generic
proceeding of the decision theory. This process includes methods and
concepts in order to establish alternative solutions on the basis of the
objectives, conditions and the model of the existing architecture. The
various alternative solutions are evaluated through a systematic proceeding
in order to identify and select the best solution. The developed process
includes the specific characteristics of software architectures:Besides
incomplete information and uncertainties, it is possible to observe hidden
dependencies through scenario-based analysis methods, establishted by the
concepts of the Architecture-Level-Modifiability-Analysis (ALMA).Due to the
complexity and risks, huge architectural changes have to be separated into
smaller tasks. This is supported by a stepped planning, from abtract
analysis to more detailed planning.To achieve a reasonable relation between
the analysis effort and the benefis from the analysis in terms of reduced
risks, complexity and uncertainty, the depths of the analysis can be
adjusted flexibly by clear objectives. Two practical applications show, how
to make architectural decisions in a systematic way by using the decision
process. Afterwards, the assumptions and expectations, which have been used
for the decision making, are evaluated by comparing with the consequences
of the real implementation. Due to the results of the comparison it can be
described clearly, which advantages and disadvantages the application of
the decision process has.In Softwareentwicklungsprozessen müssen permanent die richtigen
Design- und Architekturentscheidungen getroffen werden, damit die mit dem
Entwicklungs- oder Reengineeringprojekt verbundenen Ziele in vollem Umfang
erfüllt werden können. Diese Entscheidungen können dabei von
unterschiedlicher Natur sein. So werden einerseits Entscheidungen
getroffen, die nur geringe Auswirkungen auf das Softwaresystem haben. Auf
der anderen Seite existieren Entscheidungen mit strategischem Charakter,
die sich auf große Teile der Architektur und auf zentrale
Systemeigenschaften auswirken. Gerade die strategischen
Architekturentscheidungen sind in Großprojekten mit 50 oder mehr
Entwicklern von hoher kombinatorischer Komplexität und beinhalten große
Unsicherheiten über versteckte Abhängigkeiten. Der Entscheidungsträger,
meist der Architekt oder der Projektleiter, ist mit einer Vielzahl
unterschiedlicher Faktoren und Bedingungen konfrontiert. Hierzu zählen
konkurrierende Ziele oder alternative Lösungsansätze, für die meist nur
unvollständige Informationen vorliegen. Unter diesen Voraussetzungen führen
unsystematische Entscheidungen zu unkalkulierbaren Risiken mit gravierenden
Folgen für das Softwaresystem und das Entwicklungsprojekt, wie z. B. eine
deutliche Erhöhung der Entwicklungskosten oder zeitliche Verzögerungen. Die
bereits existierenden Methoden zur Entscheidungsunterstützung
berücksichtigen die spezifischen Eigenschaften von Softwarearchitekturen zu
wenig. Sie sind zu feingranular, codeorientiert und benötigen Informationen
in einer formalen Genauigkeit und Vollständigkeit, die bei
Architekturentscheidungen in Großprojekten aus Aufwandsgründen nicht
erhoben werden können. Somit fehlt eine Unterstützung des
Entscheidungsträgers, um die Vielzahl an Einzelinformationen und
subjektiven Einschätzungen zu strukturieren sowie die Entscheidungsfindung
systematisch und fokussiert durchzuführen. Mit der vorliegenden
Dissertation wird das Ziel verfolgt, die Komplexität, Unsicherheiten und
Risiken bei Architekturentscheidungen zu reduzieren, um aufwandsintensive
Korrekturen zu vermeiden und die Architekturziele in vollem Umfang zu
erfüllen. Auf der Grundlage des in der Entscheidungstheorie beschriebenen
generischen Vorgehens zur Entscheidungsfindung wird ein
Vier-Phasen-Entscheidungsprozess entwickelt. Dieser Prozess beinhaltet
Methoden und Konzepte, um ausgehend von den Zielen, Rahmenbedingungen und
der existierenden Architektur systematisch alternative Lösungsansätze zu
entwickeln. Im Anschluss werden die Lösungsansätze nach rationalen
Gesichtspunkten im Hinblick auf die Zielerreichung bewertet, um eine
ausgewogene Entscheidung zu treffen. Der entwickelte Entscheidungsprozess
berücksichtigt dabei die speziellen Eigenschaften von
Softwarearchitekturen: Trotz unvollständiger Informationen und
Unsicherheiten können versteckte Abhängigkeiten mit einem szenariobasierten
Analyse- und Bewertungsansatz, auf der Grundlage der
Architecture-Level-Modifiability-Analysis (ALMA), sichtbar gemacht werden.
Die systematische Aufteilung komplexer Entscheidungen in handhabbare
Einzelentscheidungen wird durch die Anwendung eines gestuften Verfahrens
mit Grob- und Feinplanung erreicht.Um ein ökonomisch sinnvolles Verhältnis
zwischen dem Aufwand zur Entscheidungsfindung und dem Nutzen in Form von
reduzierten Risiken, Unsicherheiten und einer geringeren Komplexität zu
ermöglichen, kann die Detailtiefe der Analysen anhand eindeutiger Kriterien
flexibel angepasst werden.Zwei praktische prototypische Anwendungen des
Entscheidungsprozesses zeigen auf, wie eine Architekturentscheidung
systematisch und nach rationalen Gesichtspunkten durchgeführt werden kann.
Die während der Entscheidungsfindung getroffenen Annahmen und Erwartungen
werden im Anschluss mit den Ergebnissen der realen Implementierung
verglichen. Anhand des Vergleichs wird klar erkennbar, welche versteckten
Abhängigkeiten durch den Einsatz des Entscheidungsprozesses bereits
frühzeitig erkannt wurden sowie welche Vorteile die richtige
Entscheidungsfindung für das Softwaresystem und das Entwicklungsprojekt
hat
Modelling nonlinear dynamics of interacting tipping elements on complex networks: the PyCascades package
Tipping elements occur in various systems such as in socio-economics, ecology and the climate system. In many cases, the individual tipping elements are not independent of each other, but they interact across scales in time and space. To model systems of interacting tipping elements, we here introduce the PyCascades open source software package for studying interacting tipping elements (https://doi.org/10.5281/zenodo.4153102). PyCascades is an object-oriented and easily extendable package written in the programming language Python. It allows for investigating under which conditions potentially dangerous cascades can emerge between interacting dynamical systems, with a focus on tipping elements. With PyCascades it is possible to use different types of tipping elements such as double-fold and Hopf types and interactions between them. PyCascades can be applied to arbitrary complex network structures and has recently been extended to stochastic dynamical systems. This paper provides an overview of the functionality of PyCascades by introducing the basic concepts and the methodology behind it. In the end, three examples are discussed, showing three different applications of the software package. First, the moisture recycling network of the Amazon rainforest is investigated. Second, a model of interacting Earth system tipping elements is discussed. And third, the PyCascades modelling framework is applied to a global trade network
Verbesserung des Wissensmanagements durch Einführung einer Intranet-Plattform: Ein Erfahrungsbericht
Unser professionelles Selbstverständnis als Informationsspezialisten, der schnelle Wandel der Aufgaben und Strukturen in Bibliotheken sowie die zunehmende inhaltliche und technische Komplexität der Informationsangebote in unserer Wissensgesellschaft erfordern neue Methoden und Werkzeuge, um das vorhandene und neu entstehende Wissen effizient zu dokumentieren und zu teilen. Neue Methoden und Werkzeuge ermöglichen es auch, das Dienstleistungsspektrum in unserer Branche dynamisch an den Bedarf unserer Nutzer anzupassen. Damit die Schnelligkeit der Veränderungen nicht zu einem (Zusammen-)Bruch der historisch und kultursoziologisch bedeutsamen Institution „Bibliothek“ führt, müssen möglichst viele Mitarbeiterinnen und Mitarbeiter in die Lage versetzt werden, den Wandel nachzuvollziehen und aktiv mitzugestalten. Transparenz und Interaktion gewinnen an Bedeutung, weil sich das nötige Wissen für Entscheidungsfindungen auf immer mehr Köpfe verteilt. Die Spezialisierung steigt und gleichzeitig erfordert das Dienstleisten für die Wissensgesellschaft eine hohe Vernetzung der verschiedenen Aufgabenbereiche. Rundschreiben per EMail, mündliche Kommunikation, Aktenordner und selbst Wiki-Software kommen hier schnell an ihre Grenzen. An der Einführung moderner Werkzeuge zum Wissensmanagement in Bibliotheken führt deshalb kein Weg vorbei. Die SLUB Dresden hat im Oktober 2012 eine Intranet-Plattform auf Basis der Software Confluence eingeführt. In diesem Artikel werden die Erfahrungen bei der Lösungssuche und Evaluation und schließlich bei der Einführung eines mit Social-Network-Funktionen ausgestatteten Intranets beschrieben. Das „soziale“ Intranet dient auch als Grundlage eines umfassenden Enterprise Content Managements.
[...
Modelling nonlinear dynamics of interacting tipping elements on complex networks: the PyCascades package
Tipping elements occur in various systems such as in socio-economics, ecology and the climate system. In many cases, the individual tipping elements are not independent of each other, but they interact across scales in time and space. To model systems of interacting tipping elements, we here introduce the PyCascades open source software package for studying interacting tipping elements (https://doi.org/10.5281/zenodo.4153102). PyCascades is an object-oriented and easily extendable package written in the programming language Python. It allows for investigating under which conditions potentially dangerous cascades can emerge between interacting dynamical systems, with a focus on tipping elements. With PyCascades it is possible to use different types of tipping elements such as double-fold and Hopf types and interactions between them. PyCascades can be applied to arbitrary complex network structures and has recently been extended to stochastic dynamical systems. This paper provides an overview of the functionality of PyCascades by introducing the basic concepts and the methodology behind it. In the end, three examples are discussed, showing three different applications of the software package. First, the moisture recycling network of the Amazon rainforest is investigated. Second, a model of interacting Earth system tipping elements is discussed. And third, the PyCascades modelling framework is applied to a global trade network